1. Field of the Invention
The present disclosure relates generally to communications network technology and specifically to the processes employed by packet network devices comprising a communications network for forwarding data packets from one packet network device to another.
2. Description of the Related Art
Packet network devices direct data packets traveling across a communications network between data sources and destinations. Packet network devices can perform “routing” or “switching” depending upon the header information and the networking techniques used to direct the data packets. A single packet network device may be configured to perform routing or switching or both routing and switching and both of these types of packet network device are referred to herein as a “packet switch” with the understanding that that this term encompasses a wide variety of packet forwarding capabilities. Generally, packet switches operate to receive a data packet at an ingress port, process the data packet to determine the destination or next hop that the packet should be sent to (if the switch is not itself the destination) and then send the data packet out an egress port to its proper destination. After the data packet arrives at the ingress port to the packet switch, the switch typically examines the header in the data packet for information that indicates the address of the destination device to which the data packet is to be sent. This could be another packet switch or it could be the current packet switch that received the data packet. Each packet switch typically builds and maintains forwarding tables which include information that is uses, in conjunction with the information it detects in the data packet header, to determine how to forward the data packet to a next hop in the network.
Ethernet networks have become ubiquitous and are growing in popularity and usage, especially in the Data Center (DC) environment. This popularity is driving the large scale adaptation of Ethernet which in turn is driving down the cost and increasing the speed at which these networks operate. With the large scale adaptation of Ethernet technology, the number of nodes (packet network devices, routers, switching, virtual machines) on the Ethernet network increases. In addition to the increasingly more numerous physical/actual nodes connected to such a network, each actual node can support a number of virtual machines (VM). Each VM is assigned a different MAC address, which depending upon the number of virtual machines in a local network can result in a large number of MAC addresses being maintained in the forwarding tables of packet switches that are aware of some or all of the virtual machines.
An Ethernet MAC address consists of two components each one of which is 24 bits in length. The first component is a manufacturer's organizationally unique identifier (OUI) which is controlled by the IEEE and which comprises the higher order 24 bits of the MAC address, and the second component, comprising the lower 24 bits, is a running number controlled by the manufacturer which can be a number identifying a particular network interface device or just about another other type of information the manufacturer wishes. While this scheme ensures that each MAC address is globally unique, it results in a flat (as opposed to hierarchical) address space which results in the packet network devices building flat forwarding tables.
Network switches can learn the MAC addresses of neighboring network devices by observing the source address in the frames that they receive from the other devices and making an entry in their forwarding tables mapping the source MAC address to the port on which this packet was received by the switch. Subsequently when a data packet is received that includes this MAC address as the MAC DA, the packet is switched out on the port identified by the table entry and not flooded to the entire network. Typically, the packets entering a packet switch are processed by a packet processor device that includes a limited amount of on-board memory to store the forwarding tables. The requirement to increase the size of these forwarding tables to accommodate such a flat MAC addressing scheme become untenable even for the high end switches available in the market. As a consequence of building and maintaining flat forwarding tables in the data plane of a packet network device and as a result of device location information not being included in the MAC address, network switches which forward traffic based on the MAC address typically learn the MAC addresses of all the nodes in the network that they can reach. Consequently, the forwarding table in a switch can have one entry for each of these MAC addresses. In a DC with a large number of virtualized nodes or VMs, this can result in the need to build a forwarding table that includes 100,000 entries or more.
When multiple layer 2 (L2) networks are connected together through a virtual LAN (VLAN) or normal packet network device such as a router, the device which is forwarding the data between these networks will have to maintain a large layer 3 (L3) host (ARP) forwarding table. If a packet network device is forwarding data packets between two VLANs, VLAN1 and VLAN2 for instance, and a node A in VLAN1 wants to send a packet to node B in VLAN2, node A sends the data packet to the packet network device and the network device can run the well known address resolution protocol (ARP) in VLAN2 in order to learn the physical network address of node B. The packet network device uses the results of ARP to creates an entry in its L3 forwarding table that includes the physical address (MAC address) of node B and the next hop information which will consist of the egress port (The port on which the ARP reply was received) and other L2 information that may be needed. In a data center environment where the network is organized in terms of VLANs, each of which are dedicated to provide a particular service, a request can be received that can only be fulfilled by gathering information from multiple services. Such a service request can result in a high level of inter-VLAN communication, and as a consequence, the packet network device have to populate its L3 forwarding table with the MAC destination address (DA) of all the nodes in all the VLANs. Further, if some or all servers associated with the VLANs are configured with multiple virtual machines, then the number of physical addresses that need to be learned and stored in the L3 forwarding table could be more than 100,000 entries. Unfortunately, there are limits to the amount of on-board memory space that is specifically reserved for these L2 and L3 forwarding tables, and so creating and maintaining such a large number of table entries is problematical.
Therefore, in light of the problems associated with creating and maintaining very large forwarding tables in the hardware of the data plane of a packet network device, if would be advantageous to reduce the forwarding table size requirements for both L2 and L3 forwarding tables while providing line-speed packet processing.